home *** CD-ROM | disk | FTP | other *** search
/ Merciful 2 / Merciful - Disc 2.iso / software / m / muiv3.1cracked.lha / MUI / Developer / Modula / txt / MuiMacros.mod < prev    next >
Text File  |  1995-11-18  |  45KB  |  1,372 lines

  1. IMPLEMENTATION MODULE MuiMacros;
  2.  
  3. (*$ NilChk      := FALSE EntryClear  := FALSE LargeVars   := FALSE StackParms  := FALSE *)
  4. (*$ DEFINE Locale := TRUE *)
  5. (*$ DEFINE MUIOBSOLETE := FALSE *)
  6. (*$ DEFINE MUI3   := TRUE  *)
  7.  
  8. (****************************************************************************
  9. **
  10. ** $VER: MuiMacros.mod 3.1 (18.11.95)
  11. **
  12. ** The following updates have been done by
  13. **
  14. **   Olaf "Olf" Peters <olf@informatik.uni-bremen.de>
  15. **
  16. ** $HISTORY:
  17. **
  18. ** 18.11.95  3.1   : updated for MUI v3.1 release
  19. **  17.9.95  2.3   : updated to MUI v2.3
  20. **
  21. ****************************************************************************)
  22.  
  23. (****************************************************************************
  24. **
  25. **      MUI Macros 2.0
  26. **
  27. **      Converted to Modula by Christian "Kochtopf" Scholz
  28. **
  29. **      $Id: MuiMacros.mod 1.3 1995/11/18 16:46:18 olf Exp olf $
  30. **
  31. **      $Log: MuiMacros.mod $
  32.  * Revision 1.3  1995/11/18  16:46:18  olf
  33.  * MUI Release 3.1
  34.  *
  35.  * Revision 1.2  1995/10/23  17:06:34  olf
  36.  * *** empty log message ***
  37.  *
  38.  * Revision 1.1  1995/09/25  15:32:52  olf
  39.  * Initial revision
  40.  *
  41. # Revision 1.8  1994/08/18  18:59:25  Kochtopf
  42. # changed img-argument in PopButton from ARRAY to APTR.
  43. # changed implementation of SimpleButton for -MUIOBSOLETE
  44. #
  45. # Revision 1.7  1994/08/11  16:59:45  Kochtopf
  46. # *** empty log message ***
  47. #
  48. # Revision 1.6  1994/06/27  22:06:41  Kochtopf
  49. # put some Macros in MUIOBSOLETE-Parenthesis, because one should
  50. # now use mMakeObj.
  51. #
  52. # Revision 1.5  1994/02/15  21:14:05  Kochtopf
  53. # neue Macros fuer Pop* und Register definiert,
  54. # HCenter und VCenter neu
  55. # PopUp entfernt und durch PopButton ersetzt.
  56. # neue Label-Macros LLabel eingefuehrt (aus mui.h)
  57. #
  58. # Revision 1.4  1994/02/09  14:50:03  Kochtopf
  59. # Versionsnummer in 2.0 geaendert.
  60. #
  61. **
  62. ****************************************************************************)
  63.  
  64. IMPORT  MD:MuiD;
  65. IMPORT  ML:MuiL;
  66. IMPORT  UD:UtilityD;
  67. IMPORT  R;
  68. FROM    MuiSupport IMPORT DoMethod;
  69. FROM    UtilityD IMPORT tagEnd, tagMore, HookPtr, Hook;
  70. FROM    SYSTEM IMPORT ADDRESS, ADR, TAG, CAST, SETREG, REG;
  71. FROM    IntuitionL IMPORT SetAttrsA, GetAttr;
  72. FROM    IntuitionD IMPORT omGET, omADDMEMBER, omREMMEMBER;
  73. FROM    Storage IMPORT ALLOCATE;
  74.  
  75. VAR buffer  : ARRAY [0..50] OF LONGINT;      (* for the tags *)
  76.  
  77. (*///  "MUI-Object-Generation" *)
  78. (*
  79. **
  80. **  MUI - Object Generation
  81. **
  82. *)
  83.  
  84. PROCEDURE WindowObject(tags : UD.TagItemPtr) : APTR;
  85.     BEGIN
  86.         RETURN ML.mNewObject(ADR(MD.mcWindow), tags);
  87.     END WindowObject;
  88.  
  89. PROCEDURE ImageObject(tags : UD.TagItemPtr) : APTR;
  90.     BEGIN
  91.         RETURN ML.mNewObject(ADR(MD.mcImage), tags);
  92.     END ImageObject;
  93.  
  94. PROCEDURE ApplicationObject(tags : UD.TagItemPtr) : APTR;
  95.     BEGIN
  96.         RETURN ML.mNewObject(ADR(MD.mcApplication), tags);
  97.     END ApplicationObject;
  98.  
  99. PROCEDURE NotifyObject(tags : UD.TagItemPtr) : APTR;
  100.     BEGIN
  101.         RETURN ML.mNewObject(ADR(MD.mcNotify), tags);
  102.     END NotifyObject;
  103.  
  104. PROCEDURE TextObject(tags : UD.TagItemPtr) : APTR;
  105.     BEGIN
  106.         RETURN ML.mNewObject(ADR(MD.mcText), tags);
  107.     END TextObject;
  108.  
  109. PROCEDURE RectangleObject(tags : UD.TagItemPtr) : APTR;
  110.     BEGIN
  111.         RETURN ML.mNewObject(ADR(MD.mcRectangle), tags);
  112.     END RectangleObject;
  113.  
  114. PROCEDURE ListObject(tags : UD.TagItemPtr) : APTR;
  115.     BEGIN
  116.         RETURN ML.mNewObject(ADR(MD.mcList), tags);
  117.     END ListObject;
  118.  
  119. PROCEDURE PropObject(tags : UD.TagItemPtr) : APTR;
  120.     BEGIN
  121.         RETURN ML.mNewObject(ADR(MD.mcProp), tags);
  122.     END PropObject;
  123.  
  124. PROCEDURE StringObject(tags : UD.TagItemPtr) : APTR;
  125.     BEGIN
  126.         RETURN ML.mNewObject(ADR(MD.mcString), tags);
  127.     END StringObject;
  128.  
  129. PROCEDURE ScrollbarObject(tags : UD.TagItemPtr) : APTR;
  130.     BEGIN
  131.         RETURN ML.mNewObject(ADR(MD.mcScrollbar), tags);
  132.     END ScrollbarObject;
  133.  
  134. PROCEDURE ListviewObject(tags : UD.TagItemPtr) : APTR;
  135.     BEGIN
  136.         RETURN ML.mNewObject(ADR(MD.mcListview), tags);
  137.     END ListviewObject;
  138.  
  139. PROCEDURE RadioObject(tags : UD.TagItemPtr) : APTR;
  140.     BEGIN
  141.         RETURN ML.mNewObject(ADR(MD.mcRadio), tags);
  142.     END RadioObject;
  143.  
  144. PROCEDURE VolumelistObject(tags : UD.TagItemPtr) : APTR;
  145.     BEGIN
  146.         RETURN ML.mNewObject(ADR(MD.mcVolumelist), tags);
  147.     END VolumelistObject;
  148.  
  149. PROCEDURE FloattextObject(tags : UD.TagItemPtr) : APTR;
  150.     BEGIN
  151.         RETURN ML.mNewObject(ADR(MD.mcFloattext), tags);
  152.     END FloattextObject;
  153.  
  154. PROCEDURE DirlistObject(tags : UD.TagItemPtr) : APTR;
  155.     BEGIN
  156.         RETURN ML.mNewObject(ADR(MD.mcDirlist), tags);
  157.     END DirlistObject;
  158.  
  159. PROCEDURE ScrmodelistObject(tags : UD.TagItemPtr) : APTR;
  160.     BEGIN
  161.         RETURN ML.mNewObject(ADR(MD.mcScrmodelist), tags);
  162.     END ScrmodelistObject;
  163.  
  164. PROCEDURE SliderObject(tags : UD.TagItemPtr) : APTR;
  165.     BEGIN
  166.         RETURN ML.mNewObject(ADR(MD.mcSlider), tags);
  167.     END SliderObject;
  168.  
  169. PROCEDURE CycleObject(tags : UD.TagItemPtr) : APTR;
  170.     BEGIN
  171.         RETURN ML.mNewObject(ADR(MD.mcCycle), tags);
  172.     END CycleObject;
  173.  
  174. PROCEDURE GaugeObject(tags : UD.TagItemPtr) : APTR;
  175.     BEGIN
  176.         RETURN ML.mNewObject(ADR(MD.mcGauge), tags);
  177.     END GaugeObject;
  178.  
  179. PROCEDURE BoopsiObject(tags : UD.TagItemPtr) : APTR;
  180.     BEGIN
  181.         RETURN ML.mNewObject(ADR(MD.mcBoopsi), tags);
  182.     END BoopsiObject;
  183.  
  184. PROCEDURE ScaleObject(tags : UD.TagItemPtr) : APTR;
  185.     BEGIN
  186.         RETURN ML.mNewObject(ADR(MD.mcScale), tags);
  187.     END ScaleObject;
  188.  
  189. PROCEDURE GroupObject(tags : UD.TagItemPtr) : APTR;
  190.     BEGIN
  191.         RETURN ML.mNewObject(ADR(MD.mcGroup), tags);
  192.     END GroupObject;
  193.  
  194. PROCEDURE VGroup(tags : UD.TagItemPtr) : APTR;
  195.     BEGIN
  196.         RETURN ML.mNewObject(ADR(MD.mcGroup), tags);
  197.     END VGroup;
  198.  
  199. PROCEDURE HGroup(tags : UD.TagItemPtr) : APTR;
  200.     BEGIN
  201.         RETURN ML.mNewObject(ADR(MD.mcGroup), TAG(buffer, MD.maGroupHoriz, TRUE, tagMore, tags, tagEnd));
  202.     END HGroup;
  203.  
  204. PROCEDURE ColGroup(cols : LONGCARD; tags : UD.TagItemPtr) : APTR;
  205.     BEGIN
  206.         RETURN ML.mNewObject(ADR(MD.mcGroup), TAG(buffer, MD.maGroupColumns, cols, tagMore, tags, tagEnd));
  207.     END ColGroup;
  208.  
  209. PROCEDURE RowGroup(rows : LONGCARD; tags : UD.TagItemPtr) : APTR;
  210.     BEGIN
  211.         RETURN ML.mNewObject(ADR(MD.mcGroup), TAG(buffer, MD.maGroupRows, rows, tagMore, tags, tagEnd));
  212.     END RowGroup;
  213.  
  214. PROCEDURE PageGroup(tags : UD.TagItemPtr) : APTR;
  215.     BEGIN
  216.          RETURN ML.mNewObject(ADR(MD.mcGroup),TAG(buffer, MD.maGroupPageMode, TRUE, tagMore, tags, tagEnd));
  217.     END PageGroup;
  218.  
  219. PROCEDURE ColorfieldObject(tags : UD.TagItemPtr) : APTR;
  220.     BEGIN
  221.          RETURN ML.mNewObject(ADR(MD.mcColorfield), tags);
  222.     END ColorfieldObject;
  223.  
  224. PROCEDURE ColoradjustObject(tags : UD.TagItemPtr) : APTR;
  225.     BEGIN
  226.          RETURN ML.mNewObject(ADR(MD.mcColoradjust), tags);
  227.     END ColoradjustObject;
  228.  
  229. PROCEDURE PaletteObject(tags : UD.TagItemPtr) : APTR;
  230.     BEGIN
  231.          RETURN ML.mNewObject(ADR(MD.mcPalette), tags);
  232.     END PaletteObject;
  233.  
  234. PROCEDURE VirtgroupObject(tags : UD.TagItemPtr) : APTR;
  235.     BEGIN
  236.          RETURN ML.mNewObject(ADR(MD.mcVirtgroup), tags);
  237.     END VirtgroupObject;
  238.  
  239. PROCEDURE ScrollgroupObject(tags : UD.TagItemPtr) : APTR;
  240.     BEGIN
  241.          RETURN ML.mNewObject(ADR(MD.mcScrollgroup), tags);
  242.     END ScrollgroupObject;
  243.  
  244. PROCEDURE VGroupV(tags : UD.TagItemPtr) : APTR;
  245.     BEGIN
  246.          RETURN ML.mNewObject(ADR(MD.mcVirtgroup), tags);
  247.     END VGroupV;
  248.  
  249. PROCEDURE HGroupV(tags : UD.TagItemPtr) : APTR;
  250.     BEGIN
  251.         RETURN ML.mNewObject(ADR(MD.mcVirtgroup), TAG(buffer, MD.maGroupHoriz, TRUE, tagMore, tags, tagEnd));
  252.     END HGroupV;
  253.  
  254. PROCEDURE ColGroupV(cols : LONGCARD; tags : UD.TagItemPtr) : APTR;
  255.     BEGIN
  256.         RETURN ML.mNewObject(ADR(MD.mcVirtgroup), TAG(buffer, MD.maGroupColumns, cols, tagMore, tags, tagEnd));
  257.     END ColGroupV;
  258.  
  259. PROCEDURE RowGroupV(rows : LONGCARD; tags : UD.TagItemPtr) : APTR;
  260.     BEGIN
  261.         RETURN ML.mNewObject(ADR(MD.mcVirtgroup), TAG(buffer, MD.maGroupRows, rows, tagMore, tags, tagEnd));
  262.     END RowGroupV;
  263.  
  264. PROCEDURE PageGroupV(tags : UD.TagItemPtr) : APTR;
  265.     BEGIN
  266.          RETURN ML.mNewObject(ADR(MD.mcVirtgroup),TAG(buffer, MD.maGroupPageMode, TRUE, tagMore, tags, tagEnd));
  267.     END PageGroupV;
  268.  
  269. PROCEDURE PopString(tags : UD.TagItemPtr) : APTR;
  270.     BEGIN
  271.          RETURN ML.mNewObject(ADR(MD.mcPopstring), tags);
  272.     END PopString;
  273.  
  274. PROCEDURE PopObject(tags : UD.TagItemPtr) : APTR;
  275.     BEGIN
  276.          RETURN ML.mNewObject(ADR(MD.mcPopobject), tags);
  277.     END PopObject;
  278.  
  279. PROCEDURE PopAsl(tags : UD.TagItemPtr) : APTR;
  280.     BEGIN
  281.          RETURN ML.mNewObject(ADR(MD.mcPopasl), tags);
  282.     END PopAsl;
  283.  
  284. (*$ IF MUI3 *)
  285.  
  286. PROCEDURE PoppenObject(tags : UD.TagItemPtr) : APTR ;
  287.     BEGIN
  288.          RETURN ML.mNewObject(ADR(MD.mcPoppen), tags);
  289.     END PoppenObject ;
  290.  
  291. (*$ ENDIF *)
  292.  
  293. PROCEDURE Register(tags : UD.TagItemPtr) : APTR;
  294.     BEGIN
  295.          RETURN ML.mNewObject(ADR(MD.mcRegister), tags);
  296.     END Register;
  297.  
  298. PROCEDURE MenuStripObject(tags : UD.TagItemPtr) : APTR;
  299.     BEGIN
  300.          RETURN ML.mNewObject(ADR(MD.mcMenustrip), tags);
  301.     END MenuStripObject;
  302.  
  303. PROCEDURE MenuObject(tags : UD.TagItemPtr) : APTR;
  304.     BEGIN
  305.          RETURN ML.mNewObject(ADR(MD.mcMenu), tags);
  306.     END MenuObject;
  307.  
  308. (*$ IF Locale *)
  309. PROCEDURE MenuObjectT(name : StrPtr; tags : UD.TagItemPtr) : APTR;
  310. (*$ ELSE *)(*$ CopyDyn := FALSE *)
  311. PROCEDURE MenuObjectT(name : ARRAY OF CHAR; tags : UD.TagItemPtr) : APTR;
  312. (*$ ENDIF *)
  313.     BEGIN
  314.          (*$ IF Locale *)
  315.          RETURN ML.mNewObject(ADR(MD.mcMenu), TAG(buffer, MD.maMenuTitle, name, tagMore, tags, tagEnd));
  316.          (*$ ELSE *)
  317.          RETURN ML.mNewObject(ADR(MD.mcMenu), TAG(buffer, MD.maMenuTitle, ADR(name), tagMore, tags, tagEnd));
  318.          (*$ ENDIF *)
  319.     END MenuObjectT;
  320.  
  321. PROCEDURE MenuItemObject(tags : UD.TagItemPtr) : APTR;
  322.     BEGIN
  323.          RETURN ML.mNewObject(ADR(MD.mcMenuitem), tags);
  324.     END MenuItemObject;
  325.  
  326.  
  327. (*$ IF MUI3 *)
  328.  
  329. PROCEDURE AboutmuiObject(tags : UD.TagItemPtr) : APTR;
  330.     BEGIN
  331.          RETURN ML.mNewObject(ADR(MD.mcAboutmui), tags);
  332.     END AboutmuiObject;
  333.  
  334. PROCEDURE BalanceObject(tags : UD.TagItemPtr) : APTR ;
  335.     BEGIN
  336.          RETURN ML.mNewObject(ADR(MD.mcBalance), tags);
  337.     END BalanceObject;
  338.  
  339. PROCEDURE KnobObject(tags : UD.TagItemPtr) : APTR ;
  340.     BEGIN
  341.          RETURN ML.mNewObject(ADR(MD.mcKnob), tags);
  342.     END KnobObject;
  343.  
  344. PROCEDURE LevelmeterObject(tags : UD.TagItemPtr) : APTR ;
  345.     BEGIN
  346.          RETURN ML.mNewObject(ADR(MD.mcLevelmeter), tags);
  347.     END LevelmeterObject;
  348.  
  349. PROCEDURE NumericbuttonObject(tags : UD.TagItemPtr) : APTR ;
  350.     BEGIN
  351.          RETURN ML.mNewObject(ADR(MD.mcNumericbutton), tags);
  352.     END NumericbuttonObject;
  353.  
  354. PROCEDURE NumericObject(tags : UD.TagItemPtr) : APTR ;
  355.     BEGIN
  356.          RETURN ML.mNewObject(ADR(MD.mcNumeric), tags);
  357.     END NumericObject;
  358.  
  359. PROCEDURE PenadjustObject(tags : UD.TagItemPtr) : APTR ;
  360.     BEGIN
  361.          RETURN ML.mNewObject(ADR(MD.mcPenadjust), tags);
  362.     END PenadjustObject;
  363.  
  364. (*$ ENDIF *)
  365.  
  366.  
  367. (*\\\*)
  368. (*///  "MakeID" *)
  369. (*
  370. **  MakeID
  371. **  Generate an ID out of a 4-char-string.
  372. **  Use it the as WindowID ! (look in MuiTest for an example!)
  373. *)
  374.  
  375. PROCEDURE MakeID (name : ShortString): LONGINT;
  376.  
  377.     BEGIN
  378.         RETURN ORD(name[0])+
  379.                ORD(name[1])*256+
  380.                ORD(name[2])*65536+
  381.                ORD(name[3])*16777216;
  382.     END MakeID;
  383. (*\\\*)
  384. (*///  "Hook-Support" *)
  385. (*
  386. **  Hook-Support functions
  387. **  1. the dispatcher
  388. **  2. the MakeHook-Function
  389. **
  390. *)
  391.  
  392. PROCEDURE HookEntry(hook{R.A0}  : HookPtr;
  393.                     object{R.A2}: ADDRESS;
  394.                     args{R.A1}  : ADDRESS)     : ADDRESS;
  395.     (*$SaveA4:=TRUE*)
  396.     BEGIN
  397.         SETREG (R.A4, hook^.data);
  398.         RETURN CAST(HookDef,hook^.subEntry)(hook, object, args);
  399.     END HookEntry;
  400.  
  401. PROCEDURE MakeHook(entry:HookDef; VAR hook : HookPtr);
  402.  
  403.     BEGIN
  404.             ALLOCATE(hook,SIZE(Hook));
  405.             hook^.node.succ  := NIL;
  406.             hook^.node.pred  := NIL;
  407.             hook^.entry      := HookEntry;
  408.             hook^.subEntry   := CAST(ADDRESS,entry);
  409.             hook^.data       := REG(R.A4);
  410.     END MakeHook;
  411. (*\\\*)
  412. (*///  "Spacing-Macros" *)
  413. (*
  414. **
  415. **  Spacing Macros
  416. **
  417. *)
  418. (*///  "HV-Space" *)
  419. PROCEDURE HVSpace() : APTR;
  420.     BEGIN
  421.         RETURN ML.mNewObject(ADR(MD.mcRectangle), NIL);
  422.     END HVSpace;
  423. (*\\\*)
  424. (*///  "Hspace" *)
  425. PROCEDURE HSpace(x : LONGCARD) : APTR;
  426.     BEGIN
  427.         IF x#0 THEN
  428.                 RETURN ML.mNewObject(ADR(MD.mcRectangle),
  429.                                      TAG(buffer,
  430.                                         MD.maFixWidth,     x,
  431.                                         MD.maVertWeight,   0,
  432.                                         tagEnd));
  433.                 ELSE
  434.                 RETURN ML.mNewObject(ADR(MD.mcRectangle),
  435.                                      TAG(buffer,
  436.                                         MD.maVertWeight,   0,
  437.                                         tagEnd));
  438.                 END;
  439.     END HSpace;
  440. (*\\\*)
  441. (*///  "VSpace" *)
  442. PROCEDURE VSpace(x : LONGCARD) : APTR;
  443.     BEGIN
  444.         IF x#0 THEN
  445.                 RETURN ML.mNewObject(ADR(MD.mcRectangle),
  446.                                      TAG(buffer,
  447.                                         MD.maFixHeight,     x,
  448.                                         MD.maHorizWeight,   0,
  449.                                         tagEnd));
  450.                 ELSE
  451.                 RETURN ML.mNewObject(ADR(MD.mcRectangle),
  452.                                      TAG(buffer,
  453.                                         MD.maHorizWeight,   0,
  454.                                         tagEnd));
  455.                 END;
  456.     END VSpace;
  457. (*\\\*)
  458. (*///  "HCenter" *)
  459. PROCEDURE HCenter(obj : APTR) : APTR;
  460.     BEGIN
  461.         RETURN HGroup(TAG(buffer,
  462.                     MD.maGroupSpacing,      0,
  463.                     Child,                  HSpace(0),
  464.                     Child,                  obj,
  465.                     Child,                  HSpace(0),
  466.                     tagEnd));
  467.     END HCenter;
  468. (*\\\*)
  469. (*///  "VCenter" *)
  470. PROCEDURE VCenter(obj : APTR) : APTR;
  471.     BEGIN
  472.         RETURN VGroup(TAG(buffer,
  473.                     MD.maGroupSpacing,      0,
  474.                     Child,                  VSpace(0),
  475.                     Child,                  obj,
  476.                     Child,                  VSpace(0),
  477.                     tagEnd));
  478.     END VCenter;
  479. (*\\\*)
  480. (*\\\*)
  481. (*///  "PopButton" *)
  482. (*
  483. **
  484. **  PopUp-Button
  485. **
  486. **  to be used for Popup-Objects
  487. **
  488. *)
  489.  
  490. PROCEDURE PopButton(img : APTR) : APTR;
  491.     BEGIN
  492.         RETURN ML.MakeObject(MD.moPopButton, TAG(buffer, img));
  493.     END PopButton;
  494. (*\\\*)
  495.  
  496. (*$ IF MUIOBSOLETE *)
  497.  
  498. (*
  499. **
  500. ** String-Object
  501. **
  502. ** Makes a simple String-Gadget
  503. **
  504. *)
  505.  
  506. (*///  "StringObjects" *)
  507. (*$ IF Locale *)
  508. PROCEDURE String(contents : StrPtr; maxlen : LONGINT) : APTR;
  509. (*$ ELSE *)(*$ CopyDyn := FALSE *)
  510. PROCEDURE String(contents : ARRAY OF CHAR; maxlen : LONGINT) : APTR;
  511. (*$ ENDIF *)
  512.     BEGIN
  513.         RETURN StringObject(TAG(buffer,
  514.                             MD.maFrame,            MD.mvFrameString,
  515.                             MD.maStringMaxLen,     maxlen,
  516.                             (*$ IF Locale *)
  517.                                 MD.maStringContents,   contents,
  518.                             (*$ ELSE *)
  519.                                 MD.maStringContents,   ADR(contents),
  520.                             (*$ ENDIF *)
  521.                             tagEnd));
  522.     END String;
  523. (*$ IF Locale *)
  524. PROCEDURE KeyString(contents : StrPtr; maxlen : LONGINT; key : CHAR) : APTR;
  525. (*$ ELSE *)(*$ CopyDyn := FALSE *)
  526. PROCEDURE KeyString(contents : ARRAY OF CHAR; maxlen : LONGINT; key : CHAR) : APTR;
  527. (*$ ENDIF *)
  528.     BEGIN
  529.         RETURN StringObject(TAG(buffer,
  530.                             MD.maFrame,             MD.mvFrameString,
  531.                             MD.maStringMaxLen,      maxlen,
  532.                             (*$ IF Locale *)
  533.                                 MD.maStringContents,    contents,
  534.                             (*$ ELSE *)
  535.                                 MD.maStringContents,    ADR(contents),
  536.                             (*$ ENDIF *)
  537.                             MD.maControlChar,       key,
  538.                             tagEnd));
  539.     END KeyString;
  540. (*\\\*)
  541.  
  542. (*
  543. **
  544. ** Checkmark
  545. **
  546. *)
  547.  
  548. (*///  "Checkmarks" *)
  549. PROCEDURE Checkmark(selected : BOOLEAN) : APTR;
  550.     BEGIN
  551.         RETURN ImageObject( TAG(buffer,
  552.                             MD.maFrame,            MD.mvFrameImageButton,
  553.                             MD.maInputMode,        MD.mvInputModeToggle,
  554.                             MD.maImageSpec,        MD.miCheckMark,
  555.                             MD.maImageFreeVert,    TRUE,
  556.                             MD.maSelected,         selected,
  557.                             MD.maBackground,       MD.miButtonBack,
  558.                             MD.maShowSelState,     FALSE,
  559.                             tagEnd));
  560.     END Checkmark;
  561.  
  562. PROCEDURE KeyCheckmark(selected : BOOLEAN; key : CHAR) : APTR;
  563.     BEGIN
  564.         RETURN ImageObject( TAG(buffer,
  565.                             MD.maFrame,            MD.mvFrameImageButton,
  566.                             MD.maInputMode,        MD.mvInputModeToggle,
  567.                             MD.maImageSpec,        MD.miCheckMark,
  568.                             MD.maImageFreeVert,    TRUE,
  569.                             MD.maSelected,         selected,
  570.                             MD.maBackground,       MD.miButtonBack,
  571.                             MD.maShowSelState,     FALSE,
  572.                             MD.maControlChar,      key,
  573.                             tagEnd));
  574.     END KeyCheckmark;
  575.  
  576. (*\\\*)
  577.  
  578. (*
  579. **
  580. ** Buttons
  581. **
  582. *)
  583.  
  584. (*///  "Buttons" *)
  585. (*$ IF Locale *)
  586. PROCEDURE Simplebutton(name : StrPtr) : APTR;
  587. (*$ ELSE *)(*$ CopyDyn := FALSE *)
  588. PROCEDURE Simplebutton(name : ARRAY OF CHAR) : APTR;
  589. (*$ ENDIF *)
  590.     BEGIN
  591.         RETURN TextObject(  TAG(buffer,
  592.                             MD.maFrame,            MD.mvFrameButton,
  593.                             (*$ IF Locale *)
  594.                                 MD.maTextContents,     name,
  595.                             (*$ ELSE *)
  596.                                 MD.maTextContents,     ADR(name),
  597.                             (*$ ENDIF *)
  598.                             MD.maTextPreParse,     ADR("\033c"),
  599.                             MD.maTextSetMax,       FALSE,
  600.                             MD.maInputMode,        MD.mvInputModeRelVerify,
  601.                             MD.maBackground,       MD.miButtonBack,
  602.                             tagEnd));
  603.  
  604.     END Simplebutton;
  605.  
  606. (*$ IF Locale *)
  607. PROCEDURE Keybutton(name : StrPtr; key : CHAR) : APTR;
  608. (*$ ELSE *)(*$ CopyDyn := FALSE *)
  609. PROCEDURE Keybutton(name : ARRAY OF CHAR; key : CHAR) : APTR;
  610. (*$ ENDIF *)
  611.     BEGIN
  612.         RETURN TextObject(  TAG(buffer,
  613.                             MD.maFrame,            MD.mvFrameButton,
  614.                             (*$ IF Locale *)
  615.                                 MD.maTextContents,     name,
  616.                             (*$ ELSE *)
  617.                                 MD.maTextContents,     ADR(name),
  618.                             (*$ ENDIF *)
  619.                             MD.maTextPreParse,     ADR("\033c"),
  620.                             MD.maTextSetMax,       FALSE,
  621.                             MD.maTextHiChar,       key,
  622.                             MD.maControlChar,      key,
  623.                             MD.maInputMode,        MD.mvInputModeRelVerify,
  624.                             MD.maBackground,       MD.miButtonBack,
  625.                             tagEnd));
  626.  
  627.     END Keybutton;
  628.  
  629. (*\\\*)
  630.  
  631. (*
  632. **
  633. **  Radio Object
  634. **
  635. *)
  636.  
  637. (*///  "RadioObjects" *)
  638. (*$ IF Locale *)
  639. PROCEDURE Radio(name : StrPtr; array : APTR) : APTR;
  640. (*$ ELSE *)(*$ CopyDyn := FALSE *)
  641. PROCEDURE Radio(name : ARRAY OF CHAR; array : APTR) : APTR;
  642. (*$ ENDIF *)
  643.     BEGIN
  644.         RETURN RadioObject( TAG(buffer,
  645.                             MD.maFrame,             MD.mvFrameGroup,
  646.                             (*$ IF Locale *)
  647.                                 MD.maFrameTitle,        name,
  648.                             (*$ ELSE *)
  649.                                 MD.maFrameTitle,        ADR(name),
  650.                             (*$ ENDIF *)
  651.                             MD.maRadioEntries,      array,
  652.                             tagEnd));
  653.     END Radio;
  654.  
  655. (*$ IF Locale *)
  656. PROCEDURE KeyRadio(name : StrPtr; array : APTR; key : CHAR) : APTR;
  657. (*$ ELSE *)(*$ CopyDyn := FALSE *)
  658. PROCEDURE KeyRadio(name : ARRAY OF CHAR; array : APTR; key : CHAR) : APTR;
  659. (*$ ENDIF *)
  660.     BEGIN
  661.         RETURN RadioObject( TAG(buffer,
  662.                             MD.maFrame,             MD.mvFrameGroup,
  663.                             (*$ IF Locale *)
  664.                                 MD.maFrameTitle,        name,
  665.                             (*$ ELSE *)
  666.                                 MD.maFrameTitle,        ADR(name),
  667.                             (*$ ENDIF *)
  668.                             MD.maTextHiChar,        key,
  669.                             MD.maControlChar,       key,
  670.                             MD.maRadioEntries,      array,
  671.                             tagEnd));
  672.     END KeyRadio;
  673.  
  674. (*\\\*)
  675.  
  676. (*
  677. **
  678. **  Cycle-Objects
  679. **
  680. *)
  681.  
  682. (*///  "Cycle" *)
  683. PROCEDURE Cycle(array : APTR) : APTR;
  684.     BEGIN
  685.         RETURN CycleObject(TAG(buffer,
  686.                             MD.maCycleEntries,      array,
  687.                             tagEnd));
  688.     END Cycle;
  689.  
  690.  
  691. PROCEDURE KeyCycle(array : APTR; key : CHAR) : APTR;
  692.     BEGIN
  693.         RETURN CycleObject(TAG(buffer,
  694.                             MD.maCycleEntries,      array,
  695.                             MD.maControlChar,       key,
  696.                             tagEnd));
  697.     END KeyCycle;
  698. (*\\\*)
  699.  
  700. (*
  701. **
  702. **  Slider-Objects
  703. **
  704. *)
  705.  
  706. (*///  "Slider" *)
  707. PROCEDURE Slider(min,max,level : LONGINT; horiz : BOOLEAN) : APTR;
  708.     BEGIN
  709.         RETURN SliderObject(TAG(buffer,
  710.                             MD.maGroupHoriz,        horiz,
  711. (*$ IF MUI3 *)
  712.                             MD.maNumericValue,      level,
  713.                             MD.maNumericMax,        max,
  714.                             MD.maNumericMin,        min,
  715. (*$ ELSE *)
  716.                             MD.maSliderLevel,       level,
  717.                             MD.maSliderMax,         max,
  718.                             MD.maSliderMin,         min,
  719. (*$ ENDIF *)
  720.                             tagEnd));
  721.     END Slider;
  722.  
  723. PROCEDURE KeySlider(min,max,level : LONGINT; horiz : BOOLEAN;
  724.                         key : CHAR) : APTR;
  725.     BEGIN
  726.         RETURN SliderObject(TAG(buffer,
  727.                             MD.maGroupHoriz,        horiz,
  728. (*$ IF MUI3 *)
  729.                             MD.maNumericValue,      level,
  730.                             MD.maNumericMax,        max,
  731.                             MD.maNumericMin,        min,
  732. (*$ ELSE *)
  733.                             MD.maSliderLevel,       level,
  734.                             MD.maSliderMax,         max,
  735.                             MD.maSliderMin,         min,
  736. (*$ ENDIF *)
  737.                             MD.maControlChar,       key,
  738.                             tagEnd));
  739.     END KeySlider;
  740. (*\\\*)
  741.  
  742. (*$ ELSE *) (* MUIOBSOLETE *)
  743. (*///  "alternativer Simplebutton" *)
  744.  
  745. (*$ IF Locale *)
  746. PROCEDURE Simplebutton(name : StrPtr) : APTR;
  747.     BEGIN
  748.         RETURN ML.MakeObject(MD.moButton, TAG(buffer, name));
  749.     END Simplebutton;
  750. (*$ ELSE *)(*$ CopyDyn := FALSE *)
  751. PROCEDURE Simplebutton(name : ARRAY OF CHAR) : APTR;
  752.     BEGIN
  753.         RETURN ML.MakeObject(MD.moButton, TAG(buffer, ADR(name)));
  754.     END Simplebutton;
  755. (*$ ENDIF *) (* Locale *)
  756. (*\\\*)
  757. (*$ ENDIF *) (* MUIOBSOLETE *)
  758.  
  759. (*
  760. **
  761. ** Label Objects
  762. **
  763. *)
  764.  
  765. (*///  "LabelX" *)
  766. (*$ IF Locale *)
  767. PROCEDURE Label(label : StrPtr) : APTR;
  768. (*$ ELSE *)(*$ CopyDyn := FALSE *)
  769. PROCEDURE Label(label : ARRAY OF CHAR) : APTR;
  770. (*$ ENDIF *)
  771.     BEGIN
  772. (*$ IF Locale *)
  773.         RETURN ML.MakeObject(MD.moLabel, TAG(buffer,     label,  0, tagEnd)) ;
  774. (*$ ELSE *)
  775.         RETURN ML.MakeObject(MD.moLabel, TAG(buffer, ADR(label), 0, tagEnd)) ;
  776. (*$ ENDIF *)
  777.     END Label;
  778.  
  779. (*$ IF Locale *)
  780. PROCEDURE Label1(label : StrPtr) : APTR;
  781. (*$ ELSE *)(*$ CopyDyn := FALSE *)
  782. PROCEDURE Label1(label : ARRAY OF CHAR) : APTR;
  783. (*$ ENDIF *)
  784.     BEGIN
  785. (*$ IF Locale *)
  786.         RETURN ML.MakeObject(MD.moLabel, TAG(buffer,     label,  MD.MOLabelFlagSet{MD.singleFrame}, tagEnd)) ;
  787. (*$ ELSE *)
  788.         RETURN ML.MakeObject(MD.moLabel, TAG(buffer, ADR(label), MD.MOLabelFlagSet{MD.singleFrame}, tagEnd)) ;
  789. (*$ ENDIF *)
  790.     END Label1;
  791.  
  792. (*$ IF Locale *)
  793. PROCEDURE Label2(label : StrPtr) : APTR;
  794. (*$ ELSE *)(*$ CopyDyn := FALSE *)
  795. PROCEDURE Label2(label : ARRAY OF CHAR) : APTR;
  796. (*$ ENDIF *)
  797.     BEGIN
  798. (*$ IF Locale *)
  799.         RETURN ML.MakeObject(MD.moLabel, TAG(buffer,     label,  MD.MOLabelFlagSet{MD.doubleFrame}, tagEnd)) ;
  800. (*$ ELSE *)
  801.         RETURN ML.MakeObject(MD.moLabel, TAG(buffer, ADR(label), MD.MOLabelFlagSet{MD.doubleFrame}, tagEnd)) ;
  802. (*$ ENDIF *)
  803.     END Label2;
  804. (*\\\*)
  805. (*///  "LLabelX" *)
  806. (*$ IF Locale *)
  807. PROCEDURE LLabel(label : StrPtr) : APTR;
  808. (*$ ELSE *)(*$ CopyDyn := FALSE *)
  809. PROCEDURE LLabel(label : ARRAY OF CHAR) : APTR;
  810. (*$ ENDIF *)
  811.     BEGIN
  812. (*$ IF Locale *)
  813.         RETURN ML.MakeObject(MD.moLabel, TAG(buffer,     label,  MD.MOLabelFlagSet{MD.leftAligned}, tagEnd)) ;
  814. (*$ ELSE *)
  815.         RETURN ML.MakeObject(MD.moLabel, TAG(buffer, ADR(label), MD.MOLabelFlagSet{MD.leftAligned}, tagEnd)) ;
  816. (*$ ENDIF *)
  817.     END LLabel;
  818.  
  819.  
  820. (*$ IF Locale *)
  821. PROCEDURE LLabel1(label : StrPtr) : APTR;
  822. (*$ ELSE *)(*$ CopyDyn := FALSE *)
  823. PROCEDURE LLabel1(label : ARRAY OF CHAR) : APTR;
  824. (*$ ENDIF *)
  825.     BEGIN
  826. (*$ IF Locale *)
  827.         RETURN ML.MakeObject(MD.moLabel, TAG(buffer,     label,  MD.MOLabelFlagSet{MD.leftAligned, MD.singleFrame}, tagEnd)) ;
  828. (*$ ELSE *)
  829.         RETURN ML.MakeObject(MD.moLabel, TAG(buffer, ADR(label), MD.MOLabelFlagSet{MD.leftAligned, MD.singleFrame}, tagEnd)) ;
  830. (*$ ENDIF *)
  831.     END LLabel1;
  832.  
  833.  
  834. (*$ IF Locale *)
  835. PROCEDURE LLabel2(label : StrPtr) : APTR;
  836. (*$ ELSE *)(*$ CopyDyn := FALSE *)
  837. PROCEDURE LLabel2(label : ARRAY OF CHAR) : APTR;
  838. (*$ ENDIF *)
  839.     BEGIN
  840. (*$ IF Locale *)
  841.         RETURN ML.MakeObject(MD.moLabel, TAG(buffer,     label,  MD.MOLabelFlagSet{MD.leftAligned, MD.doubleFrame}, tagEnd)) ;
  842. (*$ ELSE *)
  843.         RETURN ML.MakeObject(MD.moLabel, TAG(buffer, ADR(label), MD.MOLabelFlagSet{MD.leftAligned, MD.doubleFrame}, tagEnd)) ;
  844. (*$ ENDIF *)
  845.     END LLabel2;
  846. (*\\\*)
  847. (*///  "CLabelX" *)
  848. (*$ IF Locale *)
  849. PROCEDURE CLabel(label : StrPtr) : APTR;
  850. (*$ ELSE *)(*$ CopyDyn := FALSE *)
  851. PROCEDURE CLabel(label : ARRAY OF CHAR) : APTR;
  852. (*$ ENDIF *)
  853.     BEGIN
  854. (*$ IF Locale *)
  855.         RETURN ML.MakeObject(MD.moLabel, TAG(buffer,     label,  MD.MOLabelFlagSet{MD.centered}, tagEnd)) ;
  856. (*$ ELSE *)
  857.         RETURN ML.MakeObject(MD.moLabel, TAG(buffer, ADR(label), MD.MOLabelFlagSet{MD.centered}, tagEnd)) ;
  858. (*$ ENDIF *)
  859.     END CLabel;
  860.  
  861.  
  862. (*$ IF Locale *)
  863. PROCEDURE CLabel1(label : StrPtr) : APTR;
  864. (*$ ELSE *)(*$ CopyDyn := FALSE *)
  865. PROCEDURE CLabel1(label : ARRAY OF CHAR) : APTR;
  866. (*$ ENDIF *)
  867.     BEGIN
  868. (*$ IF Locale *)
  869.         RETURN ML.MakeObject(MD.moLabel, TAG(buffer,     label,  MD.MOLabelFlagSet{MD.centered, MD.singleFrame}, tagEnd)) ;
  870. (*$ ELSE *)
  871.         RETURN ML.MakeObject(MD.moLabel, TAG(buffer, ADR(label), MD.MOLabelFlagSet{MD.centered, MD.singleFrame}, tagEnd)) ;
  872. (*$ ENDIF *)
  873.     END CLabel1;
  874.  
  875.  
  876. (*$ IF Locale *)
  877. PROCEDURE CLabel2(label : StrPtr) : APTR;
  878. (*$ ELSE *)(*$ CopyDyn := FALSE *)
  879. PROCEDURE CLabel2(label : ARRAY OF CHAR) : APTR;
  880. (*$ ENDIF *)
  881.     BEGIN
  882. (*$ IF Locale *)
  883.         RETURN ML.MakeObject(MD.moLabel, TAG(buffer,     label,  MD.MOLabelFlagSet{MD.centered, MD.doubleFrame}, tagEnd)) ;
  884. (*$ ELSE *)
  885.         RETURN ML.MakeObject(MD.moLabel, TAG(buffer, ADR(label), MD.MOLabelFlagSet{MD.centered, MD.doubleFrame}, tagEnd)) ;
  886. (*$ ENDIF *)
  887.     END CLabel2;
  888. (*\\\*)
  889.  
  890. (*///  "KeyLabelX" *)
  891. (*$ IF Locale *)
  892. PROCEDURE KeyLabel(label : StrPtr; HiChar : CHAR) : APTR;
  893. (*$ ELSE *)(*$ CopyDyn := FALSE *)
  894. PROCEDURE KeyLabel(label : ARRAY OF CHAR; HiChar : CHAR) : APTR;
  895. (*$ ENDIF *)
  896.     BEGIN
  897. (*$ IF Locale *)
  898.         RETURN ML.MakeObject(MD.moLabel, TAG(buffer,     label,  HiChar, tagEnd)) ;
  899. (*$ ELSE *)
  900.         RETURN ML.MakeObject(MD.moLabel, TAG(buffer, ADR(label), HiChar, tagEnd)) ;
  901. (*$ ENDIF *)
  902.     END KeyLabel;
  903.  
  904.  
  905. (*$ IF Locale *)
  906. PROCEDURE KeyLabel1(label : StrPtr; HiChar : CHAR) : APTR;
  907. (*$ ELSE *)(*$ CopyDyn := FALSE *)
  908. PROCEDURE KeyLabel1(label : ARRAY OF CHAR; HiChar : CHAR) : APTR;
  909. (*$ ENDIF *)
  910.     BEGIN
  911. (*$ IF Locale *)
  912.         RETURN ML.MakeObject(MD.moLabel, TAG(buffer,     label,  CAST(LONGCARD, MD.MOLabelFlagSet{MD.singleFrame}) + LONGCARD(HiChar), tagEnd)) ;
  913. (*$ ELSE *)
  914.         RETURN ML.MakeObject(MD.moLabel, TAG(buffer, ADR(label), CAST(LONGCARD, MD.MOLabelFlagSet{MD.singleFrame}) + LONGCARD(HiChar), tagEnd)) ;
  915. (*$ ENDIF *)
  916.     END KeyLabel1;
  917.  
  918.  
  919. (*$ IF Locale *)
  920. PROCEDURE KeyLabel2(label : StrPtr; HiChar : CHAR) : APTR;
  921. (*$ ELSE *)(*$ CopyDyn := FALSE *)
  922. PROCEDURE KeyLabel2(label : ARRAY OF CHAR; HiChar : CHAR) : APTR;
  923. (*$ ENDIF *)
  924.     BEGIN
  925. (*$ IF Locale *)
  926.         RETURN ML.MakeObject(MD.moLabel, TAG(buffer,     label,  CAST(LONGCARD, MD.MOLabelFlagSet{MD.doubleFrame}) + LONGCARD(HiChar), tagEnd)) ;
  927. (*$ ELSE *)
  928.         RETURN ML.MakeObject(MD.moLabel, TAG(buffer, ADR(label), CAST(LONGCARD, MD.MOLabelFlagSet{MD.doubleFrame}) + LONGCARD(HiChar), tagEnd)) ;
  929. (*$ ENDIF *)
  930.     END KeyLabel2;
  931. (*\\\*)
  932. (*///  "KeyLLabelX" *)
  933. (*$ IF Locale *)
  934. PROCEDURE KeyLLabel(label : StrPtr; HiChar : CHAR) : APTR;
  935. (*$ ELSE *)(*$ CopyDyn := FALSE *)
  936. PROCEDURE KeyLLabel(label : ARRAY OF CHAR; HiChar : CHAR) : APTR;
  937. (*$ ENDIF *)
  938.     BEGIN
  939. (*$ IF Locale *)
  940.         RETURN ML.MakeObject(MD.moLabel, TAG(buffer,     label,  CAST(LONGCARD, MD.MOLabelFlagSet{MD.leftAligned}) + LONGCARD(HiChar), tagEnd)) ;
  941. (*$ ELSE *)
  942.         RETURN ML.MakeObject(MD.moLabel, TAG(buffer, ADR(label), CAST(LONGCARD, MD.MOLabelFlagSet{MD.leftAligned}) + LONGCARD(HiChar), tagEnd)) ;
  943. (*$ ENDIF *)
  944.     END KeyLLabel;
  945.  
  946.  
  947. (*$ IF Locale *)
  948. PROCEDURE KeyLLabel1(label : StrPtr; HiChar : CHAR) : APTR;
  949. (*$ ELSE *)(*$ CopyDyn := FALSE *)
  950. PROCEDURE KeyLLabel1(label : ARRAY OF CHAR; HiChar : CHAR) : APTR;
  951. (*$ ENDIF *)
  952.     BEGIN
  953. (*$ IF Locale *)
  954.         RETURN ML.MakeObject(MD.moLabel, TAG(buffer,     label,  CAST(LONGCARD, MD.MOLabelFlagSet{MD.leftAligned, MD.singleFrame}) + LONGCARD(HiChar), tagEnd)) ;
  955. (*$ ELSE *)
  956.         RETURN ML.MakeObject(MD.moLabel, TAG(buffer, ADR(label), CAST(LONGCARD, MD.MOLabelFlagSet{MD.leftAligned, MD.singleFrame}) + LONGCARD(HiChar), tagEnd)) ;
  957. (*$ ENDIF *)
  958.     END KeyLLabel1;
  959.  
  960.  
  961. (*$ IF Locale *)
  962. PROCEDURE KeyLLabel2(label : StrPtr; HiChar : CHAR) : APTR;
  963. (*$ ELSE *)(*$ CopyDyn := FALSE *)
  964. PROCEDURE KeyLLabel2(label : ARRAY OF CHAR; HiChar : CHAR) : APTR;
  965. (*$ ENDIF *)
  966.     BEGIN
  967. (*$ IF Locale *)
  968.         RETURN ML.MakeObject(MD.moLabel, TAG(buffer,     label,  CAST(LONGCARD, MD.MOLabelFlagSet{MD.leftAligned, MD.doubleFrame}) + LONGCARD(HiChar), tagEnd)) ;
  969. (*$ ELSE *)
  970.         RETURN ML.MakeObject(MD.moLabel, TAG(buffer, ADR(label), CAST(LONGCARD, MD.MOLabelFlagSet{MD.leftAligned, MD.doubleFrame}) + LONGCARD(HiChar), tagEnd)) ;
  971. (*$ ENDIF *)
  972.     END KeyLLabel2;
  973. (*\\\*)
  974. (*///  "KeyCLabelX" *)
  975. (*$ IF Locale *)
  976. PROCEDURE KeyCLabel(label : StrPtr; HiChar : CHAR) : APTR;
  977. (*$ ELSE *)(*$ CopyDyn := FALSE *)
  978. PROCEDURE KeyCLabel(label : ARRAY OF CHAR; HiChar : CHAR) : APTR;
  979. (*$ ENDIF *)
  980.     BEGIN
  981. (*$ IF Locale *)
  982.         RETURN ML.MakeObject(MD.moLabel, TAG(buffer,     label,  CAST(LONGCARD, MD.MOLabelFlagSet{MD.centered}) + LONGCARD(HiChar), tagEnd)) ;
  983. (*$ ELSE *)
  984.         RETURN ML.MakeObject(MD.moLabel, TAG(buffer, ADR(label), CAST(LONGCARD, MD.MOLabelFlagSet{MD.centered}) + LONGCARD(HiChar), tagEnd)) ;
  985. (*$ ENDIF *)
  986.     END KeyCLabel;
  987.  
  988.  
  989. (*$ IF Locale *)
  990. PROCEDURE KeyCLabel1(label : StrPtr; HiChar : CHAR) : APTR;
  991. (*$ ELSE *)(*$ CopyDyn := FALSE *)
  992. PROCEDURE KeyCLabel1(label : ARRAY OF CHAR; HiChar : CHAR) : APTR;
  993. (*$ ENDIF *)
  994.     BEGIN
  995. (*$ IF Locale *)
  996.         RETURN ML.MakeObject(MD.moLabel, TAG(buffer,     label,  CAST(LONGCARD, MD.MOLabelFlagSet{MD.centered, MD.singleFrame}) + LONGCARD(HiChar), tagEnd)) ;
  997. (*$ ELSE *)
  998.         RETURN ML.MakeObject(MD.moLabel, TAG(buffer, ADR(label), CAST(LONGCARD, MD.MOLabelFlagSet{MD.centered, MD.singleFrame}) + LONGCARD(HiChar), tagEnd)) ;
  999. (*$ ENDIF *)
  1000.     END KeyCLabel1;
  1001.  
  1002.  
  1003. (*$ IF Locale *)
  1004. PROCEDURE KeyCLabel2(label : StrPtr; HiChar : CHAR) : APTR;
  1005. (*$ ELSE *)(*$ CopyDyn := FALSE *)
  1006. PROCEDURE KeyCLabel2(label : ARRAY OF CHAR; HiChar : CHAR) : APTR;
  1007. (*$ ENDIF *)
  1008.     BEGIN
  1009. (*$ IF Locale *)
  1010.         RETURN ML.MakeObject(MD.moLabel, TAG(buffer,     label,  CAST(LONGCARD, MD.MOLabelFlagSet{MD.centered, MD.doubleFrame}) + LONGCARD(HiChar), tagEnd)) ;
  1011. (*$ ELSE *)
  1012.         RETURN ML.MakeObject(MD.moLabel, TAG(buffer, ADR(label), CAST(LONGCARD, MD.MOLabelFlagSet{MD.centered, MD.doubleFrame}) + LONGCARD(HiChar), tagEnd)) ;
  1013. (*$ ENDIF *)
  1014.     END KeyCLabel2;
  1015. (*\\\*)
  1016.  
  1017. (*$ IF MUI3 *)
  1018.  
  1019. (*///  "FreeX" *)
  1020. (*$ IF Locale *)
  1021. PROCEDURE FreeLabel(label : StrPtr) : APTR;
  1022. (*$ ELSE *)(*$ CopyDyn := FALSE *)
  1023. PROCEDURE FreeLabel(label : ARRAY OF CHAR) : APTR;
  1024. (*$ ENDIF *)
  1025.     BEGIN
  1026. (*$ IF Locale *)
  1027.         RETURN ML.MakeObject(MD.moLabel, TAG(buffer,     label,  CAST(LONGCARD, MD.MOLabelFlagSet{MD.freeVert}), tagEnd)) ;
  1028. (*$ ELSE *)
  1029.         RETURN ML.MakeObject(MD.moLabel, TAG(buffer, ADR(label), CAST(LONGCARD, MD.MOLabelFlagSet{MD.freeVert}), tagEnd)) ;
  1030. (*$ ENDIF *)
  1031.     END FreeLabel;
  1032.  
  1033.  
  1034. (*$ IF Locale *)
  1035. PROCEDURE FreeLabel1(label : StrPtr) : APTR;
  1036. (*$ ELSE *)(*$ CopyDyn := FALSE *)
  1037. PROCEDURE FreeLabel1(label : ARRAY OF CHAR) : APTR;
  1038. (*$ ENDIF *)
  1039.     BEGIN
  1040. (*$ IF Locale *)
  1041.         RETURN ML.MakeObject(MD.moLabel, TAG(buffer,     label,  CAST(LONGCARD, MD.MOLabelFlagSet{MD.freeVert, MD.singleFrame}), tagEnd)) ;
  1042. (*$ ELSE *)
  1043.         RETURN ML.MakeObject(MD.moLabel, TAG(buffer, ADR(label), CAST(LONGCARD, MD.MOLabelFlagSet{MD.freeVert, MD.singleFrame}), tagEnd)) ;
  1044. (*$ ENDIF *)
  1045.     END FreeLabel1;
  1046.  
  1047.  
  1048. (*$ IF Locale *)
  1049. PROCEDURE FreeLabel2(label : StrPtr) : APTR;
  1050. (*$ ELSE *)(*$ CopyDyn := FALSE *)
  1051. PROCEDURE FreeLabel2(label : ARRAY OF CHAR) : APTR;
  1052. (*$ ENDIF *)
  1053.     BEGIN
  1054. (*$ IF Locale *)
  1055.         RETURN ML.MakeObject(MD.moLabel, TAG(buffer,     label,  CAST(LONGCARD, MD.MOLabelFlagSet{MD.freeVert, MD.doubleFrame}), tagEnd)) ;
  1056. (*$ ELSE *)
  1057.         RETURN ML.MakeObject(MD.moLabel, TAG(buffer, ADR(label), CAST(LONGCARD, MD.MOLabelFlagSet{MD.freeVert, MD.doubleFrame}), tagEnd)) ;
  1058. (*$ ENDIF *)
  1059.     END FreeLabel2;
  1060. (*\\\*)
  1061. (*///  "FreeLLabelX" *)
  1062. (*$ IF Locale *)
  1063. PROCEDURE FreeLLabel(label : StrPtr) : APTR;
  1064. (*$ ELSE *)(*$ CopyDyn := FALSE *)
  1065. PROCEDURE FreeLLabel(label : ARRAY OF CHAR) : APTR;
  1066. (*$ ENDIF *)
  1067.     BEGIN
  1068. (*$ IF Locale *)
  1069.         RETURN ML.MakeObject(MD.moLabel, TAG(buffer,     label,  CAST(LONGCARD, MD.MOLabelFlagSet{MD.freeVert, MD.leftAligned}), tagEnd)) ;
  1070. (*$ ELSE *)
  1071.         RETURN ML.MakeObject(MD.moLabel, TAG(buffer, ADR(label), CAST(LONGCARD, MD.MOLabelFlagSet{MD.freeVert, MD.leftAligned}), tagEnd)) ;
  1072. (*$ ENDIF *)
  1073.     END FreeLLabel;
  1074.  
  1075.  
  1076. (*$ IF Locale *)
  1077. PROCEDURE FreeLLabel1(label : StrPtr) : APTR;
  1078. (*$ ELSE *)(*$ CopyDyn := FALSE *)
  1079. PROCEDURE FreeLLabel1(label : ARRAY OF CHAR) : APTR;
  1080. (*$ ENDIF *)
  1081.     BEGIN
  1082. (*$ IF Locale *)
  1083.         RETURN ML.MakeObject(MD.moLabel, TAG(buffer,     label,  CAST(LONGCARD, MD.MOLabelFlagSet{MD.freeVert, MD.leftAligned, MD.singleFrame}), tagEnd)) ;
  1084. (*$ ELSE *)
  1085.         RETURN ML.MakeObject(MD.moLabel, TAG(buffer, ADR(label), CAST(LONGCARD, MD.MOLabelFlagSet{MD.freeVert, MD.leftAligned, MD.singleFrame}), tagEnd)) ;
  1086. (*$ ENDIF *)
  1087.     END FreeLLabel1;
  1088.  
  1089.  
  1090. (*$ IF Locale *)
  1091. PROCEDURE FreeLLabel2(label : StrPtr) : APTR;
  1092. (*$ ELSE *)(*$ CopyDyn := FALSE *)
  1093. PROCEDURE FreeLLabel2(label : ARRAY OF CHAR) : APTR;
  1094. (*$ ENDIF *)
  1095.     BEGIN
  1096. (*$ IF Locale *)
  1097.         RETURN ML.MakeObject(MD.moLabel, TAG(buffer,     label,  CAST(LONGCARD, MD.MOLabelFlagSet{MD.freeVert, MD.leftAligned, MD.doubleFrame}), tagEnd)) ;
  1098. (*$ ELSE *)
  1099.         RETURN ML.MakeObject(MD.moLabel, TAG(buffer, ADR(label), CAST(LONGCARD, MD.MOLabelFlagSet{MD.freeVert, MD.leftAligned, MD.doubleFrame}), tagEnd)) ;
  1100. (*$ ENDIF *)
  1101.     END FreeLLabel2;
  1102. (*\\\*)
  1103. (*///  "FreeCLabelX" *)
  1104. (*$ IF Locale *)
  1105. PROCEDURE FreeCLabel(label : StrPtr) : APTR;
  1106. (*$ ELSE *)(*$ CopyDyn := FALSE *)
  1107. PROCEDURE FreeCLabel(label : ARRAY OF CHAR) : APTR;
  1108. (*$ ENDIF *)
  1109.     BEGIN
  1110. (*$ IF Locale *)
  1111.         RETURN ML.MakeObject(MD.moLabel, TAG(buffer,     label,  CAST(LONGCARD, MD.MOLabelFlagSet{MD.freeVert, MD.centered}), tagEnd)) ;
  1112. (*$ ELSE *)
  1113.         RETURN ML.MakeObject(MD.moLabel, TAG(buffer, ADR(label), CAST(LONGCARD, MD.MOLabelFlagSet{MD.freeVert, MD.centered}), tagEnd)) ;
  1114. (*$ ENDIF *)
  1115.     END FreeCLabel;
  1116.  
  1117.  
  1118. (*$ IF Locale *)
  1119. PROCEDURE FreeCLabel1(label : StrPtr) : APTR;
  1120. (*$ ELSE *)(*$ CopyDyn := FALSE *)
  1121. PROCEDURE FreeCLabel1(label : ARRAY OF CHAR) : APTR;
  1122. (*$ ENDIF *)
  1123.     BEGIN
  1124. (*$ IF Locale *)
  1125.         RETURN ML.MakeObject(MD.moLabel, TAG(buffer,     label,  CAST(LONGCARD, MD.MOLabelFlagSet{MD.freeVert, MD.centered}) + LONGCARD(MD.moLabelSingleFrame), tagEnd)) ;
  1126. (*$ ELSE *)
  1127.         RETURN ML.MakeObject(MD.moLabel, TAG(buffer, ADR(label), CAST(LONGCARD, MD.MOLabelFlagSet{MD.freeVert, MD.centered}) + LONGCARD(MD.moLabelSingleFrame), tagEnd)) ;
  1128. (*$ ENDIF *)
  1129.     END FreeCLabel1;
  1130.  
  1131.  
  1132. (*$ IF Locale *)
  1133. PROCEDURE FreeCLabel2(label : StrPtr) : APTR;
  1134. (*$ ELSE *)(*$ CopyDyn := FALSE *)
  1135. PROCEDURE FreeCLabel2(label : ARRAY OF CHAR) : APTR;
  1136. (*$ ENDIF *)
  1137.     BEGIN
  1138. (*$ IF Locale *)
  1139.         RETURN ML.MakeObject(MD.moLabel, TAG(buffer,     label,  CAST(LONGCARD, MD.MOLabelFlagSet{MD.freeVert, MD.centered, MD.doubleFrame}), tagEnd)) ;
  1140. (*$ ELSE *)
  1141.         RETURN ML.MakeObject(MD.moLabel, TAG(buffer, ADR(label), CAST(LONGCARD, MD.MOLabelFlagSet{MD.freeVert, MD.centered, MD.doubleFrame}), tagEnd)) ;
  1142. (*$ ENDIF *)
  1143.     END FreeCLabel2;
  1144. (*\\\*)
  1145.  
  1146. (*///  "FreeKeyX" *)
  1147. (*$ IF Locale *)
  1148. PROCEDURE FreeKeyLabel(label : StrPtr; HiChar : CHAR) : APTR;
  1149. (*$ ELSE *)(*$ CopyDyn := FALSE *)
  1150. PROCEDURE FreeKeyLabel(label : ARRAY OF CHAR; HiChar : CHAR) : APTR;
  1151. (*$ ENDIF *)
  1152.     BEGIN
  1153. (*$ IF Locale *)
  1154.         RETURN ML.MakeObject(MD.moLabel, TAG(buffer,     label,  CAST(LONGCARD, MD.MOLabelFlagSet{MD.freeVert}) + LONGCARD(HiChar), tagEnd)) ;
  1155. (*$ ELSE *)
  1156.         RETURN ML.MakeObject(MD.moLabel, TAG(buffer, ADR(label), CAST(LONGCARD, MD.MOLabelFlagSet{MD.freeVert}) + LONGCARD(HiChar), tagEnd)) ;
  1157. (*$ ENDIF *)
  1158.     END FreeKeyLabel;
  1159.  
  1160.  
  1161. (*$ IF Locale *)
  1162. PROCEDURE FreeKeyLabel1(label : StrPtr; HiChar : CHAR) : APTR;
  1163. (*$ ELSE *)(*$ CopyDyn := FALSE *)
  1164. PROCEDURE FreeKeyLabel1(label : ARRAY OF CHAR; HiChar : CHAR) : APTR;
  1165. (*$ ENDIF *)
  1166.     BEGIN
  1167. (*$ IF Locale *)
  1168.         RETURN ML.MakeObject(MD.moLabel, TAG(buffer,     label,  CAST(LONGCARD, MD.MOLabelFlagSet{MD.freeVert, MD.singleFrame}) + LONGCARD(HiChar), tagEnd)) ;
  1169. (*$ ELSE *)
  1170.         RETURN ML.MakeObject(MD.moLabel, TAG(buffer, ADR(label), CAST(LONGCARD, MD.MOLabelFlagSet{MD.freeVert, MD.singleFrame}) + LONGCARD(HiChar), tagEnd)) ;
  1171. (*$ ENDIF *)
  1172.     END FreeKeyLabel1;
  1173.  
  1174.  
  1175. (*$ IF Locale *)
  1176. PROCEDURE FreeKeyLabel2(label : StrPtr; HiChar : CHAR) : APTR;
  1177. (*$ ELSE *)(*$ CopyDyn := FALSE *)
  1178. PROCEDURE FreeKeyLabel2(label : ARRAY OF CHAR; HiChar : CHAR) : APTR;
  1179. (*$ ENDIF *)
  1180.     BEGIN
  1181. (*$ IF Locale *)
  1182.         RETURN ML.MakeObject(MD.moLabel, TAG(buffer,     label,  CAST(LONGCARD, MD.MOLabelFlagSet{MD.freeVert, MD.doubleFrame}) + LONGCARD(HiChar), tagEnd)) ;
  1183. (*$ ELSE *)
  1184.         RETURN ML.MakeObject(MD.moLabel, TAG(buffer, ADR(label), CAST(LONGCARD, MD.MOLabelFlagSet{MD.freeVert, MD.doubleFrame}) + LONGCARD(HiChar), tagEnd)) ;
  1185. (*$ ENDIF *)
  1186.     END FreeKeyLabel2;
  1187. (*\\\*)
  1188. (*///  "FreeKeyLLabelX" *)
  1189. (*$ IF Locale *)
  1190. PROCEDURE FreeKeyLLabel(label : StrPtr; HiChar : CHAR) : APTR;
  1191. (*$ ELSE *)(*$ CopyDyn := FALSE *)
  1192. PROCEDURE FreeKeyLLabel(label : ARRAY OF CHAR; HiChar : CHAR) : APTR;
  1193. (*$ ENDIF *)
  1194.     BEGIN
  1195. (*$ IF Locale *)
  1196.         RETURN ML.MakeObject(MD.moLabel, TAG(buffer,     label,  CAST(LONGCARD, MD.MOLabelFlagSet{MD.freeVert, MD.leftAligned}) + LONGCARD(HiChar), tagEnd)) ;
  1197. (*$ ELSE *)
  1198.         RETURN ML.MakeObject(MD.moLabel, TAG(buffer, ADR(label), CAST(LONGCARD, MD.MOLabelFlagSet{MD.freeVert, MD.leftAligned}) + LONGCARD(HiChar), tagEnd)) ;
  1199. (*$ ENDIF *)
  1200.     END FreeKeyLLabel;
  1201.  
  1202.  
  1203. (*$ IF Locale *)
  1204. PROCEDURE FreeKeyLLabel1(label : StrPtr; HiChar : CHAR) : APTR;
  1205. (*$ ELSE *)(*$ CopyDyn := FALSE *)
  1206. PROCEDURE FreeKeyLLabel1(label : ARRAY OF CHAR; HiChar : CHAR) : APTR;
  1207. (*$ ENDIF *)
  1208.     BEGIN
  1209. (*$ IF Locale *)
  1210.         RETURN ML.MakeObject(MD.moLabel, TAG(buffer,     label,  CAST(LONGCARD, MD.MOLabelFlagSet{MD.freeVert, MD.leftAligned, MD.singleFrame}) + LONGCARD(HiChar), tagEnd)) ;
  1211. (*$ ELSE *)
  1212.         RETURN ML.MakeObject(MD.moLabel, TAG(buffer, ADR(label), CAST(LONGCARD, MD.MOLabelFlagSet{MD.freeVert, MD.leftAligned, MD.singleFrame}) + LONGCARD(HiChar), tagEnd)) ;
  1213. (*$ ENDIF *)
  1214.     END FreeKeyLLabel1;
  1215.  
  1216.  
  1217. (*$ IF Locale *)
  1218. PROCEDURE FreeKeyLLabel2(label : StrPtr; HiChar : CHAR) : APTR;
  1219. (*$ ELSE *)(*$ CopyDyn := FALSE *)
  1220. PROCEDURE FreeKeyLLabel2(label : ARRAY OF CHAR; HiChar : CHAR) : APTR;
  1221. (*$ ENDIF *)
  1222.     BEGIN
  1223. (*$ IF Locale *)
  1224.         RETURN ML.MakeObject(MD.moLabel, TAG(buffer,     label,  CAST(LONGCARD, MD.MOLabelFlagSet{MD.freeVert, MD.leftAligned, MD.doubleFrame}) + LONGCARD(HiChar), tagEnd)) ;
  1225. (*$ ELSE *)
  1226.         RETURN ML.MakeObject(MD.moLabel, TAG(buffer, ADR(label), CAST(LONGCARD, MD.MOLabelFlagSet{MD.freeVert, MD.leftAligned, MD.doubleFrame}) + LONGCARD(HiChar), tagEnd)) ;
  1227. (*$ ENDIF *)
  1228.     END FreeKeyLLabel2;
  1229. (*\\\*)
  1230. (*///  "FreeKeyCLabelX" *)
  1231. (*$ IF Locale *)
  1232. PROCEDURE FreeKeyCLabel(label : StrPtr; HiChar : CHAR) : APTR;
  1233. (*$ ELSE *)(*$ CopyDyn := FALSE *)
  1234. PROCEDURE FreeKeyCLabel(label : ARRAY OF CHAR; HiChar : CHAR) : APTR;
  1235. (*$ ENDIF *)
  1236.     BEGIN
  1237. (*$ IF Locale *)
  1238.         RETURN ML.MakeObject(MD.moLabel, TAG(buffer,     label,  CAST(LONGCARD, MD.MOLabelFlagSet{MD.freeVert, MD.centered}) + LONGCARD(HiChar), tagEnd)) ;
  1239. (*$ ELSE *)
  1240.         RETURN ML.MakeObject(MD.moLabel, TAG(buffer, ADR(label), CAST(LONGCARD, MD.MOLabelFlagSet{MD.freeVert, MD.centered}) + LONGCARD(HiChar), tagEnd)) ;
  1241. (*$ ENDIF *)
  1242.     END FreeKeyCLabel;
  1243.  
  1244.  
  1245. (*$ IF Locale *)
  1246. PROCEDURE FreeKeyCLabel1(label : StrPtr; HiChar : CHAR) : APTR;
  1247. (*$ ELSE *)(*$ CopyDyn := FALSE *)
  1248. PROCEDURE FreeKeyCLabel1(label : ARRAY OF CHAR; HiChar : CHAR) : APTR;
  1249. (*$ ENDIF *)
  1250.     BEGIN
  1251. (*$ IF Locale *)
  1252.         RETURN ML.MakeObject(MD.moLabel, TAG(buffer,     label,  CAST(LONGCARD, MD.MOLabelFlagSet{MD.freeVert, MD.centered}) + LONGCARD(MD.moLabelSingleFrame) + LONGCARD(HiChar), tagEnd)) ;
  1253. (*$ ELSE *)
  1254.         RETURN ML.MakeObject(MD.moLabel, TAG(buffer, ADR(label), CAST(LONGCARD, MD.MOLabelFlagSet{MD.freeVert, MD.centered}) + LONGCARD(MD.moLabelSingleFrame) + LONGCARD(HiChar), tagEnd)) ;
  1255. (*$ ENDIF *)
  1256.     END FreeKeyCLabel1;
  1257.  
  1258.  
  1259. (*$ IF Locale *)
  1260. PROCEDURE FreeKeyCLabel2(label : StrPtr; HiChar : CHAR) : APTR;
  1261. (*$ ELSE *)(*$ CopyDyn := FALSE *)
  1262. PROCEDURE FreeKeyCLabel2(label : ARRAY OF CHAR; HiChar : CHAR) : APTR;
  1263. (*$ ENDIF *)
  1264.     BEGIN
  1265. (*$ IF Locale *)
  1266.         RETURN ML.MakeObject(MD.moLabel, TAG(buffer,     label,  CAST(LONGCARD, MD.MOLabelFlagSet{MD.freeVert, MD.centered, MD.doubleFrame}) + LONGCARD(HiChar), tagEnd)) ;
  1267. (*$ ELSE *)
  1268.         RETURN ML.MakeObject(MD.moLabel, TAG(buffer, ADR(label), CAST(LONGCARD, MD.MOLabelFlagSet{MD.freeVert, MD.centered, MD.doubleFrame}) + LONGCARD(HiChar), tagEnd)) ;
  1269. (*$ ENDIF *)
  1270.     END FreeKeyCLabel2;
  1271. (*\\\*)
  1272.  
  1273. (*$ ENDIF *)
  1274.  
  1275. (*
  1276. **
  1277. ** Controlling Objects
  1278. **
  1279. ** Note : get didn't work in previous releases
  1280. **
  1281. *)
  1282.  
  1283. (*///  "set, get,...." *)
  1284.  
  1285. PROCEDURE get(obj : APTR; attr : LONGCARD; store : ADDRESS);
  1286.     BEGIN DoMethod(obj,TAG(buffer, omGET, attr, store));
  1287.     END get;
  1288.  
  1289. PROCEDURE set(obj : APTR; attr : LONGCARD; value : LONGINT);
  1290.     VAR dummy : APTR;
  1291.     BEGIN dummy:=SetAttrsA(obj, TAG(buffer,attr,value,tagEnd));
  1292.     END set;
  1293.  
  1294. PROCEDURE setmutex(obj : APTR; n : LONGINT);
  1295.     BEGIN set(obj,MD.maRadioActive,n);
  1296.     END setmutex;
  1297.  
  1298. PROCEDURE setcycle(obj : APTR; n : LONGINT);
  1299.     BEGIN set(obj,MD.maCycleActive,n);
  1300.     END setcycle;
  1301.  
  1302. (*$ IF Locale *)
  1303. PROCEDURE setstring(obj : APTR; s : StrPtr);
  1304.     BEGIN set(obj,MD.maStringContents,s);
  1305.     END setstring;
  1306. (*$ ELSE *) (*$ CopyDyn := FALSE *)
  1307. PROCEDURE setstring(obj : APTR; s : ARRAY OF CHAR);
  1308.     BEGIN set(obj,MD.maStringContents,ADR(s));
  1309.     END setstring;
  1310. (*$ ENDIF *)
  1311.  
  1312. PROCEDURE setcheckmark(obj : APTR; b : BOOLEAN);
  1313.     BEGIN
  1314.         IF b THEN set(obj,MD.maSelected,1);
  1315.              ELSE set(obj,MD.maSelected,0);
  1316.              END;
  1317.     END setcheckmark;
  1318.  
  1319. PROCEDURE setslider(obj : APTR; l : LONGINT);
  1320.     BEGIN
  1321. (*$ IF MUI3 *)
  1322.       set(obj,MD.maNumericValue,l);
  1323. (*$ ELSE *)
  1324.       set(obj,MD.maSliderLevel,l);
  1325. (*$ ENDIF *)
  1326.     END setslider;
  1327.  
  1328. (*\\\*)
  1329. (*///  "NoteClose" *)
  1330. (*
  1331. ** NoteClose (app,obj,ID)
  1332. *)
  1333. PROCEDURE NoteClose(app : APTR; obj : APTR; ID  : LONGINT);
  1334.     BEGIN DoMethod(obj,TAG(buffer, MD.mmNotify,MD.maWindowCloseRequest,TRUE, app,2,MD.mmApplicationReturnID,ID));
  1335.     END NoteClose;
  1336. (*\\\*)
  1337. (*///  "NoteButton" *)
  1338. (*
  1339. **  Notebutton (app,obj,ID)
  1340. *)
  1341. PROCEDURE NoteButton(app : APTR; obj : APTR; ID  : LONGINT);
  1342.     BEGIN DoMethod(obj,TAG(buffer, MD.mmNotify,MD.maPressed, FALSE, app,2,MD.mmApplicationReturnID,ID));
  1343.     END NoteButton;
  1344. (*\\\*)
  1345. (*///  "RemMember" *)
  1346. (*
  1347. ** RemMember (obj,member)
  1348. *)
  1349.  
  1350. PROCEDURE RemMember(obj : APTR; member : APTR);
  1351.     BEGIN DoMethod(obj,TAG(buffer, omREMMEMBER, member));
  1352.     END RemMember;
  1353. (*\\\*)
  1354. (*///  "AddMember" *)
  1355. (*
  1356. ** AddMember (obj,member)
  1357. *)
  1358.  
  1359. PROCEDURE AddMember(obj : APTR; member : APTR);
  1360.     BEGIN DoMethod(obj,TAG(buffer, omADDMEMBER, member));
  1361.     END AddMember;
  1362. (*\\\*)
  1363.  
  1364. END MuiMacros.
  1365.  
  1366.  
  1367.  
  1368.  
  1369.  
  1370.  
  1371.  
  1372.